服务控制管理器(Service Control Manager,简称SCM)是
Windows NT操作系统中的特殊系统
进程,其控制
Windows服务进程的启动、停止和交互。
API完成,同一API也被交互式Windows服务管理工具使用,例如MMC扩展Services.msc和
命令行的服务控制实用工具sc.exe。
延迟的自动启动服务在Windows Vista中被添加,目的是解决系统启动耗时过长的问题,以及提高关键服务的启动速度。在设计之初,自动启动的服务初始化方法是为其他应用程序和服务依赖的基本系统服务所涉及。SCM仅在处理所有非延迟的自动启动服务后初始化延迟服务(调用ScInitDelayStart()函数)。此函数用工作线程延迟并排队工作项(默认120秒)。除在延迟之后初始化,延迟与非延迟的自动启动服务没有其他区别。
注册表值Type(类型)为SERVICE_KERNEL_DRIVER或SERVICE_FILE_SYSTEM_DRIVER的服务会被特殊处理:这代表其为
设备驱动程序系统调用已被引用,SeLoadDriverPrivilege也已添加到SCM进程。
SCM还提供了一个与Windows服务无关的额外功能:它会在一个
网络驱动器连接被创建或删除时通知
图形用户界面应用程序(例如
Windows Explorer),通过广播窗口消息WM_DEVICECHANGE。
Windows服务是指
Windows NT操作系统中的一种运行在后台的计算机程序。它在概念上类似于
Unix守护进程。Windows服务必须匹配
服务控制管理器(负责管理Windows服务的组件)的接口规则和协议。
Windows服务可以配置为在操作系统启动时运行,并且在Windows运行期间持续在后台运行。服务也可以手动或基于某个事件而启动。Windows NT操作系统包含众多服务,分别运行在三种
用户帐户环境中:系统、网络服务和本地服务。这些Windows组件通常采用Windows服务托管进程。因为Windows服务运行在其自身的专用用户帐户中,它们可以在用户未登录时活动。
在Windows Vista之前,安装为“交互服务”的服务可以与Windows
桌面交互和显示
图形用户界面。但在Windows Vista中,交互服务已被弃用,并且可能无法正常运行。